package com.quwan.app.service;

import com.quwan.app.vo.DynamicDetailsDTO;
import com.quwan.app.vo.MemberDynamicDTO;
import com.quwan.common.result.PageResult;
import com.quwan.entity.TDynamicComment;

/**
 * @author quan
 * @date 2021-07-24 10:28
 */

public interface MemberDynamicService {

    /**
     * 获取会员发表动态列表
     * @param pageNo
     * @param pageSize
     * @param mId 会员id
     * @param status 状态
     * @param type 0:自己 1:推荐 2:关注
     * @return
     */
    PageResult<MemberDynamicDTO> getMemberDynamicList(int pageNo, int pageSize, String mId, String status, String type);

    /**
     * 关注动态
     * @param mId 会员id
     * @param dynamicId 关注动态id
     * @return
     */

    boolean addDynamicFollow(String mId, String dynamicId);

    /**
     * 取消关注
     * @param mId
     * @param dynamicId
     * @return
     */

    boolean cancelDynamicFollow(String mId, String dynamicId);

    /**
     * 动态评论列表
     * @param pageNo
     * @param pageSize
     * @param dynamicId 动态id
     * @return
     */

    PageResult<TDynamicComment> getDynamicList(int pageNo, int pageSize, String dynamicId ,String mId);

    /**
     * 发表动态
     * @param mId
     * @param title 标题
     * @param topic 主题
     * @param files 附件 url
     * @return
     */

    boolean publishDynamic(String mId, String title, String topic, String files);

    /**
     * 评论动态
     * @param dynamicId
     * @param mId 评论人
     * @param message
     * @return
     */

    boolean addDynamicComment(String dynamicId,String mId, String message);

    /**
     * 查看目标用户动态列表
     * @param id 当前用户
     * @param pageNo
     * @param pageSize
     * @param mId 目标用户
     * @return
     */
    PageResult<MemberDynamicDTO> getMemberDynamicListById(String id, int pageNo, int pageSize, String mId);

    /**
     * 动态详情
     * @param mId 当前用户id
     * @param dynamicId 动态id
     * @return
     */
    DynamicDetailsDTO getDynamicDetails(String mId, String dynamicId);

    /**
     * 点赞评论
     * @param id
     * @param commentId
     * @param status
     */
    void followComment(String id, String commentId, Integer status);

    /**
     * 动态评论 作者回复
     * @param id
     * @param commentId
     * @param content
     */
    void commentReply(String id, String commentId, String content);

    /**
     * 删除动态
     * @param mId
     * @param id
     * @return
     */
    boolean delDynamic(String mId, String id);
}
